package com.dingding.service;

import com.dingding.baseservice.amap.service.IAmapService;
import com.dingding.baseservice.email.IEmailSend;
import com.dingding.bean.databean.response.DataResponse;
import com.dingding.common.core.config.SystemCode;
import com.dingding.common.core.util.DateFormatUtil;
import com.dingding.dao.chatmessagedao.IChatMessageDao;
import com.dingding.dao.common.ICommonDao;
import com.dingding.dao.systemdao.IBannerDao;
import com.dingding.dao.systemdao.ISystemBroadcastDao;
import com.dingding.dao.systemdao.ISystemKeyDao;
import com.dingding.dao.systemdao.ISystemNewsDao;
import com.dingding.dao.usermangerdao.IDepositDetailDao;
import com.dingding.dao.usermangerdao.IPhoneValidateDao;
import com.dingding.dao.usermangerdao.IUserAccountDao;
import com.dingding.dao.usermangerdao.IUserAccountDetailDao;
import com.dingding.dao.usermangerdao.IUserCouponDao;
import com.dingding.dao.usermangerdao.IUserDetailDao;
import com.dingding.dao.usermangerdao.IUserIntegralDao;
import com.dingding.dao.usermangerdao.IUserIntegralDetailDao;
import com.dingding.dao.usermangerdao.IUserLoginDao;
import com.dingding.dao.usermangerdao.IUserRouteDao;
import com.dingding.dao.usermangerdao.IUserpushSettingDao;
import com.dingding.dao.usermangerdao.IVehicleAuditDao;
import com.dingding.dao.usermangerdao.IVehicleinfoDao;
import com.dingding.dao.userorderdao.ISpecialOrderCommentDao;
import com.dingding.dao.userorderdao.IStagePriceDao;
import com.dingding.dao.userorderdao.IUserLocationDao;
import com.dingding.dao.userorderdao.IUserOrderDao;
import com.dingding.dao.userorderdao.IUserOrderTDao;
import com.dingding.dao.userorderdao.UserSpecialOrderDao;
import com.dingding.facade.account.facade.special.ISpecialUserAccountFacade;
import com.dingding.facade.account.facade.tailwind.IDepositAccountFacade;
import com.dingding.facade.user.service.IUserAttachedFacade;
import com.dingding.facade.user.service.IUserAuthFacade;
import com.dingding.facade.user.service.IUserInfoFacade;
import com.dingding.facade.user.service.evaluate.IOrderCommentFacade;
import com.dingding.facade.user.service.evaluate.IStarLevelInfoFacade;
import com.dingding.facde.activity.service.IActivityShowService;
import com.dingding.facde.activity.service.IUserAttendActivityService;
import com.dingding.facde.activity.service.IWechatActivityService;
import com.dingding.facde.banner.service.IBannerShowService;
import com.dingding.facde.coupon.ICouponService;
import com.dingding.order.service.IUserOrderFacade;
import com.dingding.service.activityservice.ICouponActivityService;
import com.dingding.service.chatmessageservice.IChatMessageService;
import com.dingding.service.systemservice.IBannerService;
import com.dingding.service.systemservice.ISystemBroadcastService;
import com.dingding.service.systemservice.ISystemKeyService;
import com.dingding.service.systemservice.ISystemNewsService;
import com.dingding.service.usermangerservice.IDepositDetailService;
import com.dingding.service.usermangerservice.IPhoneValidateService;
import com.dingding.service.usermangerservice.IUserAccountDetailService;
import com.dingding.service.usermangerservice.IUserAccountService;
import com.dingding.service.usermangerservice.IUserDetailService;
import com.dingding.service.usermangerservice.IUserIntegralDetailService;
import com.dingding.service.usermangerservice.IUserIntegralService;
import com.dingding.service.usermangerservice.IUserLoginService;
import com.dingding.service.usermangerservice.IUserRouteService;
import com.dingding.service.usermangerservice.IVehicleAuditService;
import com.dingding.service.usermangerservice.IVehicleinfoService;
import com.dingding.service.userorderservice.IStagePriceService;
import com.dingding.service.userorderservice.IUserOrderService;
import com.dingding.service.userorderservice.IUserOrderTService;
import com.dingding.webservice.account.IIntegralService;
import com.dingding.webservice.activity.IActivityService;
import com.dingding.webservice.banner.IBannerInfoService;
import com.dingding.webservice.ordercomment.IOrderCommentService;
import com.dingding.webservice.starlevelinfo.IStarLevelInfoService;

/**
 * @ClassName: BaseService
 * @Description: 所有的DAO引入类
 * @author cheshaowei
 * @date 2015-5-12 上午11:33:25
 */
public abstract class BaseService {

	// 用户审核管理
	protected IUserAuthFacade userAuthFacade;

	// 手机号码验证DAO
	protected IPhoneValidateDao phoneValidateDao;

	// 用户用户账户DAO
	protected IUserAccountDao userAccountDao;

	// 用户账户操作明细DAO
	protected IUserAccountDetailDao userAccountDetailDao;

	// 广告DAO
	protected IBannerDao bannerDao;

	// 系统广播DAO
	protected ISystemBroadcastDao systemBroadcastDao;

	// 费用计算
	protected IStagePriceDao stagePriceDao;

	// 系统消息DAO
	protected ISystemNewsDao systemNewsDao;

	// 提现交易DAO
	protected IDepositDetailDao depositDetailDao;

	// 用户详细信息DAO
	protected IUserDetailDao userDetailDao;

	// 用户积分DAO
	protected IUserIntegralDao userIntegralDao;

	// 用户积分交易记录DAO
	protected IUserIntegralDetailDao userIntegralDetailDao;

	// 用户登录DAO
	protected IUserLoginDao userLoginDao;

	// 车主信息DAO
	protected IVehicleinfoDao vehicleinfoDao;

	// 车主审核记录DAO
	protected IVehicleAuditDao vehicleAuditDao;

	// 用户订单DAO
	protected IUserOrderDao userOrderDao;

	// 用户订单临时表DAO
	protected IUserOrderTDao userOrderTDao;
	
	//	专车订单评价DAO
	protected ISpecialOrderCommentDao iSpecialOrderCommentDao;
	
	//专车订单信息评价操作Dao
	protected UserSpecialOrderDao userSpecialOrderDao;
	

	public UserSpecialOrderDao getUserSpecialOrderDao() {
		return userSpecialOrderDao;
	}

	public void setUserSpecialOrderDao(UserSpecialOrderDao userSpecialOrderDao) {
		this.userSpecialOrderDao = userSpecialOrderDao;
	}

	public ISpecialOrderCommentDao getiSpecialOrderCommentDao() {
		return iSpecialOrderCommentDao;
	}

	public void setiSpecialOrderCommentDao(ISpecialOrderCommentDao iSpecialOrderCommentDao) {
		this.iSpecialOrderCommentDao = iSpecialOrderCommentDao;
	}

	// HQL通用DAO
	protected ICommonDao commonDao;

	// 更新用户最新地址
	protected IUserLocationDao userLocationDao;

	// 系统秘钥DAO
	protected ISystemKeyDao systemKeyDao;

	// 用户优惠券DAO
	protected IUserCouponDao userCouponDao;

	// 聊天记录DAO
	protected IChatMessageDao chatMessageDao;

	// 系统秘钥service
	protected ISystemKeyService systemKeyService;

	// 广告service
	protected IBannerService bannerService;

	// 系统广播service
	protected ISystemBroadcastService systemBroadcastService;

	// 计价规则service
	protected IStagePriceService stagePriceService;

	// 系统消息service
	protected ISystemNewsService systemNewsService;

	// 提现交易记录service
	protected IDepositDetailService depositDetailService;

	// 手机号码验证service
	protected IPhoneValidateService phoneValidateService;

	// 用户账户交易详情service
	protected IUserAccountDetailService userAccountDetailService;

	// 用户账户service
	protected IUserAccountService userAccountService;

	// 用户详细信息service
	protected IUserDetailService userDetailService;

	// 用户积分service
	protected IUserIntegralDetailService userIntegralDetailService;

	// 用户积分交易记录service
	protected IUserIntegralService userIntegralService;

	// 用户登录service
	protected IUserLoginService userLoginService;

	// 车主信息service
	protected IVehicleinfoService vehicleinfoService;

	// 车主审核记录service
	protected IVehicleAuditService vehicleAuditService;

	// 用户订单service
	protected IUserOrderService userOrderService;

	// 用户更订单临时表service
	protected IUserOrderTService userOrderTService;

	// 用户路线设置service
	protected IUserRouteService userRouteService;

	// 用户路线设置dao
	protected IUserRouteDao userRouteDao;

	// 高德地图API调用Service
	protected IAmapService amapService;

	// 路线推送
	protected IUserpushSettingDao userpushSettingDao;

	// 发送邮件Service
	protected IEmailSend emailSend;

	// 优惠券Service
	protected ICouponService couponService;

	// 优惠券活动service
	protected ICouponActivityService couponActivityService;

	// Banner展示Service
	protected IBannerShowService bannerFacade;

	// Banner Action
	protected IBannerInfoService bannerInfoService;

	// Activity 展示Service
	protected IActivityShowService activityFacade;

	// Activity 展示Action
	protected IActivityService activityService;

	// 获取用户附属属性表Service
	protected IUserAttachedFacade attachedFacade;

	// 用户积分操作服务
	protected com.dingding.facade.account.integral.service.IUserIntegralService integralService;

	// Action 用户积分业务逻辑
	protected IIntegralService iIntegralService;

	// 用户参加活动服务
	protected IUserAttendActivityService userAttendActivityService;

	// 聊天记录Service
	protected IChatMessageService chatMessageService;

	// 微信活动模块service
	protected IWechatActivityService wechatActivityService;

	// 星级等级信息服务
	protected IStarLevelInfoFacade starLevelInfoFacade;

	// 订单评论服务
	protected IOrderCommentFacade orderCommentFacade;

	// 星级等级Service接口
	protected IStarLevelInfoService starLevelInfoService;

	// 订单评论Service接口
	protected IOrderCommentService orderCommentService;

	// 获取用户信息Service接口
	protected IUserInfoFacade userInfoFacade;
	
	//用户订单接口
	protected IUserOrderFacade userOrderFacade;

	// 专车用户账户服务接口
	protected ISpecialUserAccountFacade specialUserAccountFacade;
	
	// 顺风车用户账户服务接口
	protected IDepositAccountFacade depositAccountFacade;
	
	/**
	 * 
	 * @Title: setStatus
	 * @Description:设置状态码
	 * @author cheshaowei
	 * @throws
	 */
	public abstract void setStatus(DataResponse dataResponse, int status);

	/**
	 * @Description: 封装返回信息
	 * @author fengshuonan
	 */
	protected void packResponseBody(DataResponse dataResponse, Object obj) {

		dataResponse.setResponseTime(DateFormatUtil.yyyy_MM_dd_HHmmss());

		if (obj != null) {
			dataResponse.setResponseBody(obj);
			dataResponse.setResponseCode(SystemCode.SUCCESS);
			dataResponse.setResponseMessage(SystemCode.SUCCESS_MESSAGE);
		} else {
			dataResponse.setResponseCode(SystemCode.ERROR);
			dataResponse.setResponseMessage(SystemCode.ERROR_MESSAGE);
		}

	}

	public IUserpushSettingDao getUserpushSettingDao() {
		return userpushSettingDao;
	}

	public void setUserpushSettingDao(IUserpushSettingDao userpushSettingDao) {
		this.userpushSettingDao = userpushSettingDao;
	}

	public IUserRouteService getUserRouteService() {
		return userRouteService;
	}

	public void setUserRouteService(IUserRouteService userRouteService) {
		this.userRouteService = userRouteService;
	}

	public IUserRouteDao getUserRouteDao() {
		return userRouteDao;
	}

	public void setUserRouteDao(IUserRouteDao userRouteDao) {
		this.userRouteDao = userRouteDao;
	}

	public IPhoneValidateDao getPhoneValidateDao() {
		return phoneValidateDao;
	}

	public void setPhoneValidateDao(IPhoneValidateDao phoneValidateDao) {
		this.phoneValidateDao = phoneValidateDao;
	}

	public IPhoneValidateService getPhoneValidateService() {
		return phoneValidateService;
	}

	public void setPhoneValidateService(IPhoneValidateService phoneValidateService) {
		this.phoneValidateService = phoneValidateService;
	}

	public IUserAccountDetailDao getUserAccountDetailDao() {
		return userAccountDetailDao;
	}

	public void setUserAccountDetailDao(IUserAccountDetailDao userAccountDetailDao) {
		this.userAccountDetailDao = userAccountDetailDao;
	}

	public IBannerDao getBannerDao() {
		return bannerDao;
	}

	public void setBannerDao(IBannerDao bannerDao) {
		this.bannerDao = bannerDao;
	}

	public ISystemBroadcastDao getSystemBroadcastDao() {
		return systemBroadcastDao;
	}

	public void setSystemBroadcastDao(ISystemBroadcastDao systemBroadcastDao) {
		this.systemBroadcastDao = systemBroadcastDao;
	}

	public IStagePriceDao getStagePriceDao() {
		return stagePriceDao;
	}

	public void setStagePriceDao(IStagePriceDao stagePriceDao) {
		this.stagePriceDao = stagePriceDao;
	}

	public ISystemNewsDao getSystemNewsDao() {
		return systemNewsDao;
	}

	public void setSystemNewsDao(ISystemNewsDao systemNewsDao) {
		this.systemNewsDao = systemNewsDao;
	}

	public IDepositDetailDao getDepositDetailDao() {
		return depositDetailDao;
	}

	public void setDepositDetailDao(IDepositDetailDao depositDetailDao) {
		this.depositDetailDao = depositDetailDao;
	}

	public IUserDetailDao getUserDetailDao() {
		return userDetailDao;
	}

	public void setUserDetailDao(IUserDetailDao userDetailDao) {
		this.userDetailDao = userDetailDao;
	}

	public IUserIntegralDao getUserIntegralDao() {
		return userIntegralDao;
	}

	public void setUserIntegralDao(IUserIntegralDao userIntegralDao) {
		this.userIntegralDao = userIntegralDao;
	}

	public IUserLoginDao getUserLoginDao() {
		return userLoginDao;
	}

	public void setUserLoginDao(IUserLoginDao userLoginDao) {
		this.userLoginDao = userLoginDao;
	}

	public IVehicleinfoDao getVehicleinfoDao() {
		return vehicleinfoDao;
	}

	public void setVehicleinfoDao(IVehicleinfoDao vehicleinfoDao) {
		this.vehicleinfoDao = vehicleinfoDao;
	}

	public IVehicleAuditDao getVehicleAuditDao() {
		return vehicleAuditDao;
	}

	public void setVehicleAuditDao(IVehicleAuditDao vehicleAuditDao) {
		this.vehicleAuditDao = vehicleAuditDao;
	}

	public IUserOrderDao getUserOrderDao() {
		return userOrderDao;
	}

	public void setUserOrderDao(IUserOrderDao userOrderDao) {
		this.userOrderDao = userOrderDao;
	}

	public IUserOrderTDao getUserOrderTDao() {
		return userOrderTDao;
	}

	public void setUserOrderTDao(IUserOrderTDao userOrderTDao) {
		this.userOrderTDao = userOrderTDao;
	}

	public IBannerService getBannerService() {
		return bannerService;
	}

	public ICommonDao getCommonDao() {
		return commonDao;
	}

	public void setCommonDao(ICommonDao commonDao) {
		this.commonDao = commonDao;
	}

	public void setBannerService(IBannerService bannerService) {
		this.bannerService = bannerService;
	}

	public ISystemBroadcastService getSystemBroadcastService() {
		return systemBroadcastService;
	}

	public void setSystemBroadcastService(ISystemBroadcastService systemBroadcastService) {
		this.systemBroadcastService = systemBroadcastService;
	}

	public IStagePriceService getStagePriceService() {
		return stagePriceService;
	}

	public void setStagePriceService(IStagePriceService stagePriceService) {
		this.stagePriceService = stagePriceService;
	}

	public ISystemNewsService getSystemNewsService() {
		return systemNewsService;
	}

	public void setSystemNewsService(ISystemNewsService systemNewsService) {
		this.systemNewsService = systemNewsService;
	}

	public IDepositDetailService getDepositDetailService() {
		return depositDetailService;
	}

	public void setDepositDetailService(IDepositDetailService depositDetailService) {
		this.depositDetailService = depositDetailService;
	}

	public IUserAccountDetailService getUserAccountDetailService() {
		return userAccountDetailService;
	}

	public void setUserAccountDetailService(IUserAccountDetailService userAccountDetailService) {
		this.userAccountDetailService = userAccountDetailService;
	}

	public IUserAccountService getUserAccountService() {
		return userAccountService;
	}

	public void setUserAccountService(IUserAccountService userAccountService) {
		this.userAccountService = userAccountService;
	}

	public IUserDetailService getUserDetailService() {
		return userDetailService;
	}

	public void setUserDetailService(IUserDetailService userDetailService) {
		this.userDetailService = userDetailService;
	}

	public IUserIntegralDetailService getUserIntegralDetailService() {
		return userIntegralDetailService;
	}

	public void setUserIntegralDetailService(IUserIntegralDetailService userIntegralDetailService) {
		this.userIntegralDetailService = userIntegralDetailService;
	}

	public IUserAccountDao getUserAccountDao() {
		return userAccountDao;
	}

	public void setUserAccountDao(IUserAccountDao userAccountDao) {
		this.userAccountDao = userAccountDao;
	}

	public IUserIntegralDetailDao getUserIntegralDetailDao() {
		return userIntegralDetailDao;
	}

	public void setUserIntegralDetailDao(IUserIntegralDetailDao userIntegralDetailDao) {
		this.userIntegralDetailDao = userIntegralDetailDao;
	}

	public IUserIntegralService getUserIntegralService() {
		return userIntegralService;
	}

	public void setUserIntegralService(IUserIntegralService userIntegralService) {
		this.userIntegralService = userIntegralService;
	}

	public IUserLoginService getUserLoginService() {
		return userLoginService;
	}

	public void setUserLoginService(IUserLoginService userLoginService) {
		this.userLoginService = userLoginService;
	}

	public IVehicleinfoService getVehicleinfoService() {
		return vehicleinfoService;
	}

	public void setVehicleinfoService(IVehicleinfoService vehicleinfoService) {
		this.vehicleinfoService = vehicleinfoService;
	}

	public IVehicleAuditService getVehicleAuditService() {
		return vehicleAuditService;
	}

	public void setVehicleAuditService(IVehicleAuditService vehicleAuditService) {
		this.vehicleAuditService = vehicleAuditService;
	}

	public IUserOrderService getUserOrderService() {
		return userOrderService;
	}

	public void setUserOrderService(IUserOrderService userOrderService) {
		this.userOrderService = userOrderService;
	}

	public IUserOrderTService getUserOrderTService() {
		return userOrderTService;
	}

	public void setUserOrderTService(IUserOrderTService userOrderTService) {
		this.userOrderTService = userOrderTService;
	}

	public IUserLocationDao getUserLocationDao() {
		return userLocationDao;
	}

	public void setUserLocationDao(IUserLocationDao userLocationDao) {
		this.userLocationDao = userLocationDao;
	}

	public ISystemKeyDao getSystemKeyDao() {
		return systemKeyDao;
	}

	public void setSystemKeyDao(ISystemKeyDao systemKeyDao) {
		this.systemKeyDao = systemKeyDao;
	}

	public ISystemKeyService getSystemKeyService() {
		return systemKeyService;
	}

	public void setSystemKeyService(ISystemKeyService systemKeyService) {
		this.systemKeyService = systemKeyService;
	}

	public IAmapService getAmapService() {
		return amapService;
	}

	public void setAmapService(IAmapService amapService) {
		this.amapService = amapService;
	}

	public IEmailSend getEmailSend() {
		return emailSend;
	}

	public void setEmailSend(IEmailSend emailSend) {
		this.emailSend = emailSend;
	}

	public IUserCouponDao getUserCouponDao() {
		return userCouponDao;
	}

	public void setUserCouponDao(IUserCouponDao userCouponDao) {
		this.userCouponDao = userCouponDao;
	}

	public ICouponService getCouponService() {
		return couponService;
	}

	public void setCouponService(ICouponService couponService) {
		this.couponService = couponService;
	}

	public IBannerShowService getBannerFacade() {
		return bannerFacade;
	}

	public void setBannerFacade(IBannerShowService bannerFacade) {
		this.bannerFacade = bannerFacade;
	}

	public IBannerInfoService getBannerInfoService() {
		return bannerInfoService;
	}

	public void setBannerInfoService(IBannerInfoService bannerInfoService) {
		this.bannerInfoService = bannerInfoService;
	}

	public IActivityShowService getActivityFacade() {
		return activityFacade;
	}

	public void setActivityFacade(IActivityShowService activityFacade) {
		this.activityFacade = activityFacade;
	}

	public IActivityService getActivityService() {
		return activityService;
	}

	public void setActivityService(IActivityService activityService) {
		this.activityService = activityService;
	}

	public IUserAttachedFacade getAttachedFacade() {
		return attachedFacade;
	}

	public void setAttachedFacade(IUserAttachedFacade attachedFacade) {
		this.attachedFacade = attachedFacade;
	}

	public IUserAuthFacade getUserAuthFacade() {
		return userAuthFacade;
	}

	public void setUserAuthFacade(IUserAuthFacade userAuthFacade) {
		this.userAuthFacade = userAuthFacade;
	}

	public com.dingding.facade.account.integral.service.IUserIntegralService getIntegralService() {
		return integralService;
	}

	public void setIntegralService(com.dingding.facade.account.integral.service.IUserIntegralService integralService) {
		this.integralService = integralService;
	}

	public IIntegralService getiIntegralService() {
		return iIntegralService;
	}

	public void setiIntegralService(IIntegralService iIntegralService) {
		this.iIntegralService = iIntegralService;
	}

	public IUserAttendActivityService getUserAttendActivityService() {
		return userAttendActivityService;
	}

	public void setUserAttendActivityService(IUserAttendActivityService userAttendActivityService) {
		this.userAttendActivityService = userAttendActivityService;
	}

	public ICouponActivityService getCouponActivityService() {
		return couponActivityService;
	}

	public void setCouponActivityService(ICouponActivityService couponActivityService) {
		this.couponActivityService = couponActivityService;
	}

	public IChatMessageDao getChatMessageDao() {
		return chatMessageDao;
	}

	public void setChatMessageDao(IChatMessageDao chatMessageDao) {
		this.chatMessageDao = chatMessageDao;
	}

	public IChatMessageService getChatMessageService() {
		return chatMessageService;
	}

	public void setChatMessageService(IChatMessageService chatMessageService) {
		this.chatMessageService = chatMessageService;
	}

	public IWechatActivityService getWechatActivityService() {
		return wechatActivityService;
	}

	public void setWechatActivityService(IWechatActivityService wechatActivityService) {
		this.wechatActivityService = wechatActivityService;
	}

	public IStarLevelInfoFacade getStarLevelInfoFacade() {
		return starLevelInfoFacade;
	}

	public void setStarLevelInfoFacade(IStarLevelInfoFacade starLevelInfoFacade) {
		this.starLevelInfoFacade = starLevelInfoFacade;
	}

	public IOrderCommentFacade getOrderCommentFacade() {
		return orderCommentFacade;
	}

	public void setOrderCommentFacade(IOrderCommentFacade orderCommentFacade) {
		this.orderCommentFacade = orderCommentFacade;
	}

	public IStarLevelInfoService getStarLevelInfoService() {
		return starLevelInfoService;
	}

	public void setStarLevelInfoService(IStarLevelInfoService starLevelInfoService) {
		this.starLevelInfoService = starLevelInfoService;
	}

	public IOrderCommentService getOrderCommentService() {
		return orderCommentService;
	}

	public void setOrderCommentService(IOrderCommentService orderCommentService) {
		this.orderCommentService = orderCommentService;
	}

	public IUserInfoFacade getUserInfoFacade() {
		return userInfoFacade;
	}

	public void setUserInfoFacade(IUserInfoFacade userInfoFacade) {
		this.userInfoFacade = userInfoFacade;
	}

	public IUserOrderFacade getUserOrderFacade() {
		return userOrderFacade;
	}

	public void setUserOrderFacade(IUserOrderFacade userOrderFacade) {
		this.userOrderFacade = userOrderFacade;
	}

	public ISpecialUserAccountFacade getSpecialUserAccountFacade() {
		return specialUserAccountFacade;
	}

	public void setSpecialUserAccountFacade(ISpecialUserAccountFacade specialUserAccountFacade) {
		this.specialUserAccountFacade = specialUserAccountFacade;
	}

	public IDepositAccountFacade getDepositAccountFacade() {
		return depositAccountFacade;
	}

	public void setDepositAccountFacade(IDepositAccountFacade depositAccountFacade) {
		this.depositAccountFacade = depositAccountFacade;
	}

}
